﻿<Application x:Class="PMisuseAn.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:local="clr-namespace:PMisuseAn"
             StartupUri="MainWindow.xaml">
    <Application.Resources>
        <!-- Header text style -->
        <Style x:Key="headerTextStyle">
            <Setter Property="Label.VerticalAlignment" Value="Center"></Setter>
            <Setter Property="Label.FontFamily" Value="Trebuchet MS"></Setter>
            <Setter Property="Label.FontWeight" Value="Bold"></Setter>
            <Setter Property="Label.FontSize" Value="18"></Setter>
            <Setter Property="Label.Foreground" Value="#0066cc"></Setter>
        </Style>

        <!-- Label style -->
        <Style x:Key="labelStyle" TargetType="{x:Type Label}">
            <Setter Property="VerticalAlignment" Value="Top" />
            <Setter Property="HorizontalAlignment" Value="Left" />
            <Setter Property="FontWeight" Value="Bold" />
            <Setter Property="Margin" Value="0,0,0,5" />
        </Style>

        <!-- DataGrid header style -->
        <Style x:Key="columnHeaderStyle" TargetType="{x:Type DataGridColumnHeader}">
            <Setter Property="Height" Value="35" />
            <Setter Property="Padding" Value="5" />
            <Setter Property="Background" Value="#4E87D4" />
            <Setter Property="Foreground" Value="White" />
        </Style>

        <!-- List header style -->
        <Style x:Key="listHeaderStyle" TargetType="{x:Type Border}">
            <Setter Property="Height" Value="35" />
            <Setter Property="Padding" Value="5" />
            <Setter Property="Background" Value="#4E87D4" />
        </Style>

        <!-- List header text style -->
        <Style x:Key="listHeaderTextStyle" TargetType="{x:Type Label}">
            <Setter Property="Foreground" Value="White" />
            <Setter Property="VerticalAlignment" Value="Center" />
            <Setter Property="HorizontalAlignment" Value="Left" />
        </Style>

        <!-- Button style -->
        <Style x:Key="buttonStyle" TargetType="{x:Type Button}">
            <Setter Property="Width" Value="125" />
            <Setter Property="Height" Value="25" />
            <Setter Property="Margin" Value="0,10,0,0" />
            <Setter Property="HorizontalAlignment" Value="Right" />
        </Style>

    <Style 
    x:Key="LinkButton" 
    TargetType="Button">
            <Setter 
        Property="Template">
                <Setter.Value>
                    <ControlTemplate 
                TargetType="Button">
                        <TextBlock 
                    TextDecorations="Underline"> 
                <ContentPresenter /></TextBlock>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
            <Setter 
        Property="Foreground" 
        Value="Blue" />
            <Style.Triggers>
                <Trigger 
            Property="IsMouseOver" 
            Value="true">
                    <Setter 
                Property="Foreground" 
                Value="Red" />
                </Trigger>
            </Style.Triggers>
        </Style>
        
    <Style 
    x:Key="LinkButton_no_underline" 
    TargetType="Button">
            <Setter 
        Property="Template">
                <Setter.Value>
                    <ControlTemplate 
                TargetType="Button">
                        <TextBlock> 
                <ContentPresenter /></TextBlock>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
            <Setter 
        Property="Foreground" 
        Value="Blue" />
            <Style.Triggers>
                <Trigger 
            Property="IsMouseOver" 
            Value="true">
                    <Setter 
                Property="Foreground" 
                Value="Red" />
                </Trigger>
            </Style.Triggers>
        </Style>
        
        <Style 
            x:Key="grey_out_textbox" 
            TargetType="TextBox">
            <Style.Triggers>
                <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=Text}" Value="">
                    <Setter Property="Background">
                        <Setter.Value>
                            <VisualBrush Stretch="None">
                                <VisualBrush.Visual>
                                    <TextBlock Text="[desctiption]" Foreground="Gray" FontSize="10" HorizontalAlignment="Left"/>
                                </VisualBrush.Visual>
                            </VisualBrush>
                        </Setter.Value>
                    </Setter>
                </DataTrigger>
                <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=Text}" Value="{x:Null}">
                    <Setter Property="Background">
                        <Setter.Value>
                            <VisualBrush  Stretch="None">
                                <VisualBrush.Visual>
                                    <TextBlock Text="[desctiption]" Foreground="Gray" FontSize="10" HorizontalAlignment="Left" />
                                </VisualBrush.Visual>
                            </VisualBrush>
                        </Setter.Value>
                    </Setter>
                </DataTrigger>
                <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=IsFocused}" Value="True">
                    <Setter Property="Background">
                        <Setter.Value>
                            <VisualBrush Stretch="None">
                            </VisualBrush>
                        </Setter.Value>
                    </Setter>
                </DataTrigger>
            </Style.Triggers>
        </Style>

        <Style 
            x:Key="customTabItem1"
            TargetType="{x:Type TabItem}">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type TabItem}">
                        <Grid>
                            <Border 
             Name="Border"
              Background="LightBlue"
              BorderBrush="LightGray" 
             BorderThickness="1,1,1,1" 
             CornerRadius="6,6,0,0" >
                                <ContentPresenter x:Name="ContentSite"
                VerticalAlignment="Center"
                HorizontalAlignment="Center"
                ContentSource="Header"
                Margin="12,2,12,2"/>
                            </Border>
                        </Grid>
                        <ControlTemplate.Triggers>
                            <Trigger Property="IsSelected" Value="True">
                                <Setter TargetName="Border" Property="Background" Value="LightBlue" />
                            </Trigger>
                            <Trigger Property="IsSelected" Value="False">
                                <Setter TargetName="Border" Property="Background" Value="white" />
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>





        <local:TreeViewLineConverter x:Key="LineConverter"/>
        <SolidColorBrush x:Key="GlyphBrush" Color="#444" />
        <!--=================================================================
      TreeViewItem
  ==================================================================-->
        <Style x:Key="ExpandCollapseToggleStyle" TargetType="ToggleButton">
            <Setter Property="Focusable" Value="False"/>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="ToggleButton">
                        <Grid
              Width="15"
              Height="13"
              Background="White">
                            <Path x:Name="ExpandPath"
                HorizontalAlignment="Left"
                VerticalAlignment="Center"
                Margin="1,1,1,1"
                Fill="{StaticResource GlyphBrush}"
                Data="M 4 0 L 8 4 L 4 8 Z"/>
                        </Grid>
                        <ControlTemplate.Triggers>
                            <Trigger Property="IsChecked"
                   Value="True">
                                <Setter Property="Data"
                    TargetName="ExpandPath"
                    Value="M 0 4 L 8 4 L 4 8 Z"/>
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
        <Style x:Key="TreeViewItemFocusVisual">
            <Setter Property="Control.Template">
                <Setter.Value>
                    <ControlTemplate>
                        <Border>
                            <Rectangle Margin="0,0,0,0"
                     StrokeThickness="5"
                     Stroke="Black"
                     StrokeDashArray="1 2"
                     Opacity="0"/>
                        </Border>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
        <Style x:Key="{x:Type TreeViewItem}"
         TargetType="{x:Type TreeViewItem}">
            <Setter Property="Background"
          Value="Transparent"/>
            <Setter Property="HorizontalContentAlignment"
          Value="{Binding Path=HorizontalContentAlignment,
              RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}"/>
            <Setter Property="VerticalContentAlignment"
          Value="{Binding Path=VerticalContentAlignment,
              RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}"/>
            <Setter Property="Padding"
          Value="1,0,0,0"/>
            <Setter Property="Foreground"
          Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
            <Setter Property="FocusVisualStyle"
          Value="{StaticResource TreeViewItemFocusVisual}"/>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type TreeViewItem}">
                        <Grid>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition MinWidth="19"
                          Width="Auto"/>
                                <ColumnDefinition Width="Auto"/>
                                <ColumnDefinition Width="*"/>
                            </Grid.ColumnDefinitions>
                            <Grid.RowDefinitions>
                                <RowDefinition Height="Auto"/>
                                <RowDefinition/>
                            </Grid.RowDefinitions>

                            <!-- Connecting Lines -->
                            <Rectangle x:Name="HorLn" Height="1" Stroke="#8888"  Margin="10,0,0,0" SnapsToDevicePixels="true"/>
                            <Rectangle x:Name="VerLn" Width="1" Stroke="#8888" Grid.RowSpan="2" SnapsToDevicePixels="true"/>
                            <ToggleButton x:Name="Expander"
                      Style="{StaticResource ExpandCollapseToggleStyle}"
                      IsChecked="{Binding Path=IsExpanded,
                              RelativeSource={RelativeSource TemplatedParent}}"
                      ClickMode="Press"/>
                            <Border Name="Bd"
                  Grid.Column="1"
                  Background="{TemplateBinding Background}"
                  BorderBrush="{TemplateBinding BorderBrush}"
                  BorderThickness="{TemplateBinding BorderThickness}"
                  Padding="{TemplateBinding Padding}">
                                <ContentPresenter x:Name="PART_Header"
                          ContentSource="Header"
                          HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"/>
                            </Border>
                            <ItemsPresenter x:Name="ItemsHost"
                      Grid.Row="1"
                      Grid.Column="1"
                      Grid.ColumnSpan="2"/>
                        </Grid>
                        <ControlTemplate.Triggers>

                            <!-- This trigger changes the connecting lines if the item is the last in the list -->
                            <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Converter={StaticResource LineConverter}}" Value="true">
                                <Setter TargetName="VerLn"
                    Property="Height"
                    Value="6"/>
                                <Setter TargetName="VerLn"
                    Property="VerticalAlignment"
                    Value="Top"/>
                            </DataTrigger>
                            <Trigger Property="IsExpanded"
                   Value="false">
                                <Setter TargetName="ItemsHost"
                    Property="Visibility"
                    Value="Collapsed"/>
                            </Trigger>
                            <Trigger Property="HasItems"
                   Value="false">
                                <Setter TargetName="Expander"
                    Property="Visibility"
                    Value="Hidden"/>
                            </Trigger>
                            <MultiTrigger>
                                <MultiTrigger.Conditions>
                                    <Condition Property="HasHeader"
                         Value="false"/>
                                    <Condition Property="Width"
                         Value="Auto"/>
                                </MultiTrigger.Conditions>
                                <Setter TargetName="PART_Header"
                    Property="MinWidth"
                    Value="75"/>
                            </MultiTrigger>
                            <MultiTrigger>
                                <MultiTrigger.Conditions>
                                    <Condition Property="HasHeader"
                         Value="false"/>
                                    <Condition Property="Height"
                         Value="Auto"/>
                                </MultiTrigger.Conditions>
                                <Setter TargetName="PART_Header"
                    Property="MinHeight"
                    Value="19"/>
                            </MultiTrigger>
                            <Trigger Property="IsSelected"
                   Value="true">
                                <Setter TargetName="Bd"
                    Property="Background"
                    Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/>
                                <Setter Property="Foreground"
                    Value="{DynamicResource {x:Static SystemColors.HighlightTextBrushKey}}"/>
                            </Trigger>
                            <MultiTrigger>
                                <MultiTrigger.Conditions>
                                    <Condition Property="IsSelected"
                         Value="true"/>
                                    <Condition Property="IsSelectionActive"
                         Value="false"/>
                                </MultiTrigger.Conditions>
                                <Setter TargetName="Bd"
                    Property="Background"
                    Value="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"/>
                                <Setter Property="Foreground"
                    Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
                            </MultiTrigger>
                            <Trigger Property="IsEnabled"
                   Value="false">
                                <Setter Property="Foreground"
                    Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/>
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>


        <Style x:Key="MyGrid" TargetType="{x:Type DataGridCell}">

            <Setter Property="Template">

                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type DataGridCell}">
                        <Border  x:Name="MyBorder" >
                            <TextBlock 
				                Background="Transparent" 
				                TextWrapping="WrapWithOverflow"
				                TextTrimming="CharacterEllipsis" 
				                Height="auto" 
				                Width="auto"> 
                            <ContentPresenter Content="{TemplateBinding Property=ContentControl.Content}"  ContentTemplate="{TemplateBinding Property=ContentControl.Content}"/>
                            </TextBlock>
                        </Border>
                    </ControlTemplate>
                </Setter.Value>

            </Setter>

        </Style>



    </Application.Resources>   
    
</Application>
